The present invention relates to the fields of color matching and color management systems.
For the rendering of color images from a source in which the color information is in a device-independent format, yet to be rendered in a device-specific manner, conventional device-independent color management uses calorimetric information only. Device-independent triples, such as XYZ, are converted to colorant concentrations for printing on a particular device using a lookup table indexed by a device-independent triple whose lattice points contain colorant concentrations. Because lookup tables used for this purpose must necessarily be of a practical size, image pixel values generally miss the lattice points. To compensate for this, a linear interpolation is conventionally carried out to approximate the intermediate colorant values. The lookup table lattice points must have very accurate values for both the primary colorants and their corresponding overprints. Table sizes in the ranges 10xc3x9710xc3x9710 to 33xc3x9733xc3x9733 are in common use. In order to populate such tables, thousands of accurate colorimetric measurements must be taken.
A number of difficulties are in the use of conventional color management techniques. It is difficult to calculate colorant concentrations that closely and perceptually match a requested device-independent value. Because assumptions about the linearity of the given color space are usually incorrect, it is difficult to obtain accurate interpolation. Extensive measurements must be taken to fill a lookup table. It is difficult to produce invariant matches, that is, colors that will match under all lighting conditions. It may be necessary to limit color management to CMYK device spaces and to require that many overprints be measured to populate the lookup tables.
In general, in one aspect, the invention provides methods, systems, and apparatus, including computer program apparatus, for mapping a nonspectral representation of an input color to a set of concentration values for a set of device-specific colorants, where the representation is an input color tuple. A tuple is a representation of two or more components, such as XYZ color components. The invention includes using the input color tuple to derive a first set of colorant concentration values from a color lookup table; and refining the first set of colorant concentration values by an iterative non-linear process to generate a final set of colorant concentration values.
Advantageous implementations of the invention include one or more of the following features. The first set of colorant concentration values is derived by using an input color tuple as an index to obtain grid-point concentration values at two grid points of the color lookup table and calculating the first set of colorant concentration values as a linear interpolation of the grid-point concentration values. In an implementation that provides a color function table of color-additive function values, the iterative non-linear process includes iteratively (a) calculating an interim color tuple from an interim set of colorant concentration values and the color function table, the initial interim set of colorant concentration values being the first set of colorant concentration values, and (b) deriving an interim set of colorant concentration values from a difference between the input color tuple and the interim color tuple. The calculations includes calculating a partial derivative of an error function from the difference between the input color tuple and the interim color tuple; and using the partial derivative to derive a successor interim set of colorant concentration values from a current interim set of colorant concentration values.
In general, in another aspect, the invention provides methods, systems, and apparatus, including computer program apparatus, for color matching. The invention includes apparatus or steps that receive a target color value, the target color value being a nonspectral representation of a target color; receive a spectral definition of each colorant in a set of colorants; obtain an initial set of colorant concentrations for the set of colorants, each concentration corresponding to a respective colorant in a set of colorants; and generate iteratively a final set of colorant concentrations by calculating a rendered color value, the rendered color value being a nonspectral representation of a rendered color produced by a mixture of colorants defined by the set of colorant concentrations, calculating a difference between the rendered color and the target color, and modifying the set of colorant concentrations according to the calculated difference.
Advantageous implementations of the invention can include one or more of the following features. A threshold is received, and the iteration terminates when a calculated difference between the rendered color and the target color is less than the threshold or an iteration limit is reached. Obtaining an initial set of colorant concentrations includes using the target color value to select an index into a colorant concentration lookup table; and obtaining the initial set of colorant concentrations from the indexed contents of the lookup table. Calculating a rendered color corresponding to the set of colorant concentrations includes calculating a rendered color reflectivity function from the set of colorant concentrations and a set of colorant reflectivity functions, each colorant reflectivity function corresponding to a respective one of the colorants; and calculating a rendered color value from the rendered color reflectivity function. The rendered color value is calculated using an illuminant selected in response to a user input identifying desired viewing conditions. Modifying the set of colorant concentration values includes calculating a set of colorant concentration corrections from the difference between the rendered color value and the target color value. The target color value is a triple defining a location in a color space. The target color value defines a device-independent color. The difference between the rendered color and the target color is calculated in a perceptually linear color space. The perceptually linear color space is CIELAB or CIELUV. The set of colorants is an arbitrary set of two or more colorants. The spectral representation of each colorant derives from reflectivity measurements of the colorant taken at intervals over the visible spectrum without overprinting. Modifying the set of colorant concentration values includes modeling the difference between the target color and the rendered color as a scalar field over the set of colorants; and calculating a partial derivative of the surface with respect to each colorant to calculate a correction for each colorant.
Advantages that can be seen in implementations of the invention include one or more of the following. In many instances, use of the invention achieves an invariant, that is, a spectral, match to target color. Successful operation of the invention to converge to a matching color does not depend on interpolation or colorimetry. If a color lookup table is used to accelerate convergence to a color match, it may be sparse and approximate. The invention can produce colorant concentrations that closely and perceptually match a requested device-independent value. The invention works with any transparent colorants and any number of them. The invention does not require a spectrum for the target colorxe2x80x94it only requires calorimetric data for the matchxe2x80x94and nevertheless it can generate a spectrum for the target color. The invention relates color management and color matching to each other in a new way.